System and method for application control in measurement devices

ABSTRACT

A system and method for application control in measurement devices is disclosed. The method includes installing a new application using the device&#39;s graphical user interface, extending the device&#39;s menu system for the new application, launching the new application using the device&#39;s extended menu system, and controlling the device using the new application through a remote control mechanism of the device. A system of application control in a measurement device is also disclosed.

BACKGROUND

[0001] Measurement devices include such items as oscilloscopes, logic analyzers, network analyzers, and spectrum analyzers. Since oscilloscopes are the most prevalent of these devices, the following discussion will focus on the oscilloscope with the understanding that most of the following discussion equally applies to the other measurement devices.

[0002] Modern oscilloscopes are powerful general purpose tools for engineers and technicians working in a wide variety of jobs across many industries. While their generality is often an advantage, there are situations where customers desire to extend the functionality of a general purpose oscilloscope into a specific application-focused measurement solution. One example of such a situation is Universal Serial Bus (USB) pre-compliance testing. In order to achieve USB interoperability certification, a new USB device must pass a series of performance tests specified by an industry consortium. Official compliance testing is time consuming and expensive, and device manufacturers prefer to ascertain whether their new product is ready for full compliance testing via an easy pretest operation that they can perform themselves using an oscilloscope. Another example is a disk drive read-channel analysis. In order to achieve higher bit densities on magnetic media, disk manufacturers are turning to PRML (Partial Response Maximum Likelihood) approaches. In these approaches, data is stored such that individual bits intentionally overlap with adjacent bits, creating inter-symbol interference. Rather than reading and interpreting individual bits based on simple threshold detection, the read-channel processes the head signal from a stream of consecutive bits and uses statistical techniques to determine the best binary interpretation of the bit stream. In this application, customers desire to process the basic volts versus time oscilloscope data in a way that is PRML-aware, so they can verify various aspects of the processing chain with respect to the intended signals. Other current examples may include jitter analysis and power signal analysis. Still other applications will emerge in the future.

[0003] While it is sometimes feasible to include certain application-specific measurements or functions into the oscilloscope, full solutions are often best accomplished through the use of a separate program to further process the data acquired by the oscilloscope. Such application programs typically require deep knowledge of the target industry and involve complex and/or proprietary measurement algorithms. They may be developed by different individuals and under different schedules than the oscilloscope itself. Applications that are unknown at the time of the oscilloscope development may be created by third parties to capitalize on new market opportunities.

[0004] Application programs may be executed on external computers, or on the oscilloscope itself in the case where the oscilloscope is based on an open standard computing platform such as an X86 compatible personal computer (PC).

[0005] Prior application approaches using separate programs have been developed for prior systems. However, in these approaches the operation is centered on the application program and not the oscilloscope. The user interacts with the application program, which may reside on a different machine than the oscilloscope, and the application program controls the oscilloscope via a programmatic interface such as general purpose interface bus (GPIB) (EEE 488). This approach captures the benefits of de-coupling the application software from the oscilloscope, but is disadvantageous in that it requires users to change their “home base” from the oscilloscope to the application program. If it involves the use of an external PC, it is even less desirable from the standpoint of delivering a single box, turnkey solution.

[0006] There are also existing approaches based on incorporating the entire application into the oscilloscope software. This approach has been practiced extensively by LeCroy Corp. in their jitter analysis and disk drive analysis/verification packages. While it maximizes the integration attribute, this approach presents other difficulties. One of these is that the user interface (UI) to the application must be presented within the basic UI framework of the oscilloscope. For example, if the oscilloscope UI is based on softkeys, the application must fundamentally conform to a softkey paradigm. This may compromise the utility of the application. Another difficulty is that it may not be possible to develop applications independently from the oscilloscope software. Support for a new application generally requires a new revision of the oscilloscope software.

[0007] LeCroy Corp. also has a “user-defined” measurement system that allows the user to access a Visual Basic (VB) script window from within the oscilloscope application. The user then types in a VB script for a custom measurement/math function, closes the VB script window, and then runs the custom measurement function on the oscilloscope.

[0008] Another prior art alternative is based on the Component Object Model (COM) system supported by Microsoft Inc. and other software vendors. In this alternative, the oscilloscope software is developed with a COM interface that provides for rich interaction possibilities with applications that may be developed in the future. This alternative provides de-coupling of the application software from the oscilloscope while theoretically allowing for an integrated user interface via menus, dialog boxes and other controls. The main disadvantage of this alternative is its complexity, both in terms of setting up the oscilloscope with a COM interface, and in terms of the work application developers would have to do to connect their applications to the oscilloscope system. Application developers would have to learn about the COM interface and would have to compile their systems using header files that were provided by the oscilloscope manufacturer. The oscilloscope manufacturer would likely have to provide means to support multiple application development languages and tool chains.

SUMMARY

[0009] An application control system and method for a measurement device is described. The system and method allows for the running of a new application on the measurement device. This is accomplished by extending the functionality of the measurement device through the new application while retaining the operational feel of an integrated solution.

[0010] In one embodiment, the system includes a measurement device comprising a graphical user interface adapted to install new applications and adapted to extend for the installation of one of the new applications by adding at least one user interface entry for the one of the new applications to the graphical user interface, and an operating system adapted to launch the one of the new applications using the added user interface entry.

[0011] In another embodiment, the method includes installing a new application using a graphical user interface of the device, extending the graphical user interface, launching the new application using the extended graphical user interface, and controlling the device using the new application.

[0012] Other systems, methods, features and advantages of the invention will be or will become apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be within the scope of the invention, and be protected by the accompanying claims.

BRIEF DESCRIPTION OF THE DRAWINGS

[0013] Various aspects of the invention will now be described with reference to the following figures (“FIGs.”) which are not necessarily drawn to scale, but use the same reference numerals to designate corresponding parts throughout each of the several views.

[0014]FIG. 1 is a functional block diagram of a digital oscilloscope suitable for implementing the system and method of the present invention.

[0015]FIG. 2 is a functional block diagram of the application control block of FIG. 1.

[0016]FIG. 3 is an illustration of a graphical user interface having a menu item for upgrading the software.

[0017]FIG. 4 is an illustration of the graphical user interface of FIG. 3 showing the upgrade software window.

[0018]FIG. 5 is an illustration of the graphical user interface of FIG. 4 showing the install application window.

[0019]FIG. 6 is an illustration of a graphical user interface showing the analyze menu prior to the loading of the new applications.

[0020]FIG. 7 is an illustration of the graphical user interface of FIG. 6 showing the analyze menu after the loading of the new applications.

[0021]FIG. 8 is an illustration of the graphical user interface of FIG. 7 showing the USB test window.

[0022]FIG. 9 is an example of an AppAccess.dat file with the data scheme in BNF notation.

[0023]FIG. 10 is an example of a section of the AppAccess.dat file after a pair of applications have been installed.

[0024]FIG. 11 is an example of a block of unique command identifiers.

[0025]FIG. 12 is an example of a message map entry.

[0026]FIG. 13 is an example of a string array reserved for the additional applications.

[0027]FIG. 14 is an example of a handler function used to execute the correction program when a given application menu item is selected.

[0028]FIG. 15 is a flowchart for an embodiment of an application control method.

DETAILED DESCRIPTION

[0029] The present invention is a system and method for application control in a measurement device that may be implemented in any computer-based measurement device. In one preferred embodiment of the present invention, the application control system is implemented in a measurement device, such as a digital or analog oscilloscope, logic analyzer, network analyzer, or spectrum analyzer, etc. The following description will describe the embodiment for a digital oscilloscope, however, the system and method of the present invention could be utilized in any of the above mentioned measurement devices or any other computer-based measurement device.

[0030]FIG. 1 is a functional block diagram of an exemplary digital oscilloscope suitable for implementing the application control system and method of the present invention. The present invention is built on the basic system design whereby applications are implemented as separate programs from the main oscilloscope program.

[0031] A PC-based oscilloscope, such as an Agilent Infiniium product, is used so that the application programs may be executed on the same machine as the oscilloscope program. To the basic framework of the PC-based oscilloscope, the following elements are added: 1) the ability to install new applications from the oscilloscope's user interface; 2) the ability to extend the oscilloscope's menu system when a new application is installed; 3) the ability to launch (invoke) applications using the augmented elements of the oscilloscope's menu system; and 4) the ability for the application to control the oscilloscope using an existing, well-understood interface.

[0032] These added elements are designed so that applications may be developed and installed without having to revise the oscilloscope software, an important advantage of the present invention. This is possible because each element essentially describes an interface (a consistent, agreed upon system for interaction) that helps implement the associated functionality.

[0033] The digital oscilloscope 100 includes commonly-available digital oscilloscope functionality designed to acquire, analyze and display a wide variety of signals, generally in terms of the voltage of the signals versus time. The digital oscilloscope 100 preferably includes a general purpose computer system, which is programmable using a high level computer programming language, and specially programmed, special purpose hardware for performing signal acquisition, analysis and display functions.

[0034] The digital oscilloscope 100 includes a processor 102, a memory unit 104, input/output (I/O) interface cards 106, storage units such as a hard disk drive 107, a floppy disk drive 109, and a compact disk (CD) drive 111, one or more input devices such as front keyboard panel 108 and pointing devices 110 and display 112. The memory 104 is used for storage of program instructions and for storage of results of calculations performed by the processor 102. In a preferred embodiment, the memory 104 includes random access memory (RAM). The display 112 is preferably a liquid crystal display and is logically or physically divided into an array of picture elements (pixels). The input/output (I/O) interface cards 106 may be modem cards, network interface cards, sound cards, general purpose interface bus (GPIB) interface cards, universal serial bus (USB) interface cards, RS-232 interface cards, etc.

[0035] The processor 102 is typically a commercially available processor, such as the Pentium microprocessor from Intel Corporation, PowerPC microprocessor, SPARC processor, PA-RISC processor or 68000 series microprocessor. Many other processors are also available. Such a processor usually executes a program referred to as an operating system 114, such as the various versions of the Windows operating systems from Microsoft Corporation, the NetWare operating system available from Novell, Inc., or the Unix operating system available from many vendors such as Sun Microsystems, Inc., The Hewlett-Packard Company and AT&T. The operating system 114 controls the execution of other computer programs, such as a graphical user interface (GUI) 116 and application control system 118, and provides scheduling, input-output control, file and data management, memory management, and communication control and related services. The processor 102 and operating system 114 define a computer system shown by dashed block 101, for which application programs in high level programming languages are written. The functional elements of the digital oscilloscope 100 communicate with each other via bus 120.

[0036] The digital oscilloscope 100 includes a signal acquisition system 122, a oscilloscope interface card 124 and video display controller 126. The signal acquisition system 122 includes scaling and conditioning unit 128 that receives input signals through channel inputs 130. The scaling and conditioning unit 128 and acquisition unit 132 include well-known high frequency electronics for signal acquisition, signal conditioning, and analog-to-digital conversion, all of which are controlled by the computer system 101 and are considered to be well-known in the art. A timebase 134 drives the analog-to-digital conversion process performed in acquisition unit 132, specifying input sampling timing and frequency. A trigger 136 synchronizes the acquisition process through the timebase 134, enabling the user to arrange a trigger event to obtain a stable waveform display of the desired features of one or more of the input signals. Trigger 136 may be based upon a line synchronization or auxiliary trigger input, as is well known in the art.

[0037] A waveform analyzer 138 performs measurement processes for developing the waveform for display. The waveform analyzer 138 contains hardware and software to perform well-known operations such as setting the analog-to-digital codes for the acquisition unit 132 and mapping the resulting digital information to the physical pixel locations, which are ultimately presented on display 112 under the control of GUI 116. The pointing device 110 and/or the keyboard 108 are used to move a cursor on the GUI-controlled display 112 to select display elements under the cursor. The pointing device 110 may include any number of pointing devices such as a mouse, trackball or joystick. Of course, the cursor may be controlled with one or more keyboards 108 located externally or integrated into a front panel of the digital oscilloscope 100.

[0038] The oscilloscope interface card 124 includes a video controller 140 that controls the rendering of pixels into the waveform random access memory (RAM) 142. The oscilloscope interface card 124 also receives display element control commands and cursor input information from the front panel keyboard 108 and the pointing device(s) 110. The waveform RAM 142 includes a data structure for each pixel location on the display 112. The data structures contain information regarding every display element that is to be drawn at each pixel location. Although there may be multiple display elements which are to be drawn at a given pixel location, only one color may be rendered at that location. A waveform RAM 142 supplies a priority encoder 144 with this information.

[0039] The priority encoder 144 prioritizes the competing display elements. For example, if the user arranged a marker and a waveform such that they are located in the same pixel location, then the priority encoder 144 selects that display element with a highest predetermined priority. In such an example, the color of the marker is rendered at the pixel location providing a display that appears to show the marker over the waveform. The priority encoder then sends the selected color to the VRAM 146, which then causes the pixel to be rendered in the indicated color.

[0040] The video display controller 126 includes a dynamic random access memory (DRAM) 148 which contains data specifying a color for each pixel in the display 112. Likewise, a video random access memory (VRAM) 146 also contains data specifying a color for each pixel in the display 112. The computer system 101 controls the information in DRAM 148 while the signal acquisition system 122 controls information in the VRAM 146. For each pixel in the display 112, the video controller 126 selects whether the pixel in the display 112 is specified from VRAM 146 or DRAM 148. In general, information in VRAM 146 includes digitized waveforms being generated by the signal acquisition system 122 with high rates of change that are typically too fast for software processing by the computer system 101 to provide a real-time display of the waveform on display 112.

[0041] Video display controller 126 includes a controller 150 and a multiplexer 152. Controller 150 controls which of the two inputs to the multiplexer 152 are processed into display signals for transmission to the display 112 under the control of the graphical user interface 116. The controller 150 typically monitors color data sent from the DRAM 148 and may be programmed to switch the multiplexer 152 to a different input when a particular programmed color is received from the DRAM 148. A rectangular pixel area is typically defined within DRAM 148 with the programmed color, typically dark gray. The programmed color is not displayed, but instead serves as a data path switch control for the multiplexer 152. Therefore, within the programmed color rectangle, display data comes from VRAM 146. When various control functions are needed, an interactive dialog box is drawn within the programmed color rectangle by the controller 150.

[0042]FIG. 2 shows a block diagram of the application control system 118. The application control system includes an installation interface 160, an extension interface 162, a launch interface 164, and control interface 166. The application control system implements methods for installing a new application, extending the oscilloscope's menu system, launching the new application with the extended menu system, and controlling the oscilloscope with the new application.

[0043] The software routines for performing the application control methodology in accordance with the invention typically reside in memory 104 (FIG. 1) and/or hard disk drive 107 (FIG. 1).

[0044] Preferably, the application control system 118 is implemented in any well-known programming language such as C or C++. Those having ordinary skill in the art will appreciate that different implementations, including different function names, programming languages, data structures, and/or algorithms may also be used in embodiments of the present invention other than those described below. It should be further understood that the invention is not limited to a particular computer platform, particular operating system, particular processor, or particular high level programming language, and that the hardware components identified above are given by way of example only. The application control system may be implemented, for example, in dedicated hardware, firmware, or any combination thereof.

[0045] FIGS. 3-8 are illustrations of windows rendered by the graphical user interface 116. In each illustrated display, a menu 174 and waveforms 176, 178 are displayed within a window 172. A perimeter area 170 of window 172 is defined within the DRAM 148 by a Windows operating system running on computer system 101.

[0046] FIGS. 3-5 show the windows used by the installation interface 160. The installation interface 160 includes a menu item 180 and a pair of dialog boxes 182, 184 that are implemented in the oscilloscope's operating system 114. The menu item 180 (FIG. 3) launches the dialog box 182 (FIG. 4) from which the user is asked whether they are upgrading the software or installing an application. Upon selecting the installation of an application in the dialog box 182, the dialog box 184 is launched, from which the user is instructed to insert the media containing the application software. The oscilloscope then runs a batch file that terminates the operation of the oscilloscope, runs the application's installation program, and then reboots the oscilloscope. Terminating the operation of the oscilloscope and rebooting are required in order to accommodate applications that must install new copies of system dynamic link libraries (DLLs). Upon rebooting, the oscilloscope operating system 114 is re-launched.

[0047] The new application may be stored on a computer-readable medium such as, for example, a magnetic disk, a compact disc or magnetic tape and may be loaded into the digital oscilloscope 100 using an appropriate peripheral device as known to those having ordinary skill in the art, such as floppy disk drive 109 or compact disk drive 111.

[0048] The extension interface 162 (FIG. 2) is used to augment the GUI 116 of the oscilloscope to incorporate the function of accessing the added application feature(s). The extension interface 162 is based on a declarative methodology where each application inserts textual information into a special file, referred to as an “AppAccess.dat” file, as part of its installation process. This file is read by the oscilloscope and used to create additional user interface entries from which an application can be launched and potentially controlled. The augmentation to the oscilloscope GUI could take many forms. For example, a new menu item, a new toolbar button, a new measurement selection, etc., could be specified in the AppAccess.dat file. The extension data in this file is in text format to facilitate clarity and allow users or third parties to manually edit the files as part of the application development process.

[0049] The following discussion of the extension interface grammar will concentrate on a specific example of adding new menu entries for a USB Test application and a PRML application. However, the extension interface is in no way limited to menu entries. The EXTENSION_ENTRY (FIG. 9) first specifies the type of object being added. The added object could be a menu item (as it is in this example), a toolbar button, or any other object that could appear in the oscilloscope GUI.

[0050] The data format found in the AppAccess.dat file is such that menu items may be added anywhere in the oscilloscope's menu hierarchy, and each menu item may be associated with either a submenu or an application program that is to be invoked when the menu item is selected. The complete data methodology may be viewed as grammar that is described in Backus Naur Form (BNF) notation in FIG. 9. In BNF notation, non-terminals (items which are defined in terms of other non-terminals and terminals) are indicated as uppercase symbols, terminals (items which require no further definition) are indicated as lowercase symbols, and literals (literal words themselves) are indicated in quotes.

[0051] Special meanings for the data scheme of FIG. 9 include the following:

[0052] Setting number to −1 specifies the last position in the menu.

[0053] Setting EXECUTABLE_ENTRY to null specifies a popup (subordinate) menu.

[0054] Executable files are assumed to reside in the c:\scope\apps directory. Alternatively, fully-qualified path names may be given.

[0055] The ITEM_TYPE lists some of the possible extension that could be specified. In this example the ITEM_TYPE would be the literal “ITEM_MENU.” Different item types would dictate different data in the ENTRY_DATA field appropriate to the desired item. Also, while illustrated using the above BNF description, the extension grammar may in fact be structured differently. For example, the grammar could be arranged so that the major non-terminals forming the right hand side of the EXTENSION_ENTRY rule could occur in any order.

[0056] The menu_path_string terminal is a string which specifies both the new item and the location in the existing oscilloscope menu hierarchy at which the new item is to be added. For example, the text “MAIN\Analyze\&USB Test” instructs the processor to insert a new menu item called “USB Test” in the existing “Analyze” submenu. The MAIN designation indicates the main oscilloscope menu; this allows the system to account for cases where multiple menus may be used in the oscilloscope. The ampersand (&) symbol in the string indicates a shortcut key request to the oscilloscope as to which character in the new menu item should be underscored as part of implementing and communicating the keyboard shortcut for the menu item. Shortcut characters must be unique within a submenu, so the request may be overridden by the oscilloscope if it conflicts with an existing shortcut within the submenu. Omitting a shortcut key request is acceptable; in such cases the oscilloscope will select a shortcut key automatically. If the leading elements of menu_path_string do not match the actual oscilloscope menu, the new item will be installed at a default location, for example at the bottom of the “Analyze” menu.

[0057]FIG. 10 shows a more complete example of a section of the AppAccess.dat file after the USB Test and PRML applications have been installed. Each extension line is terminated by a ‘;’ character. Assuming the basic oscilloscope menu structure is as shown in FIG. 6 having menu list 186, the AppAccess.dat file of FIG. 10 leads to the augmented menu structure shown in FIG. 7, which includes new menu items 188, 190 and sub-items 192, 194.

[0058] The launch interface 164 (FIG. 2) is implemented within the oscilloscope operating system 114 using data structures provided by the Microsoft Visual C++ software development environment. A similar interface could be implemented using a different programming language, whereby the exact nature of the implementation is not critical to the present invention. The C++ implementation is described here for completeness. First, a block of unique command identifiers is reserved. Each identifier is a symbol with an associated numeric value. The numeric values constitute a contiguous series. For example, the identifiers may be set up as shown in FIG. 11.

[0059] Next, a message map entry is created as shown in FIG. 12. This causes any commands that are generated as a result of a user interface selection (a menu selection, toolbar selection, etc.) associated with identifiers in the given range to be routed to the same handler function, OnAppCommand.

[0060] Finally, space for an array of strings is reserved. Each string represents the executable filename (including any arguments) that is to be associated with a given application selection. At run time, when the oscilloscope reads the AppAccess.dat file, the oscilloscope associates the next available command identifier with each successive new extension entry, and the oscilloscope stores the executable filename in the next available position in the string array. For the example given above, the string array would appear as shown in FIG. 13.

[0061] The handler function uses this array to execute the correct program when a given application menu item is selected by the user as shown in FIG. 14. The value of the initial identifier in the range is subtracted from the actual command value in order to index into the array correctly beginning a position 0.

[0062] The launch interface 164 supports the de-coupling of application development from the oscilloscope development because the launch interface requires no advance knowledge of the exact applications that may be developed.

[0063] The control interface 166 (FIG. 2) leverages an existing remote control mechanism by which external programs may control nearly all aspects of the oscilloscope's functionality. The remote control mechanism, included in the I/O card 106 (FIG. 1) may be a general purpose interface bus (GPIB) interface, a universal serial bus (USB) interface, an RS-232 interface, or other suitable interface.

[0064] For this discussion, a GPIB interface will be used. The GPIB interface allows IEEE 488 commands to be issued to the oscilloscope over a local area network (LAN) physical interface. When external programs make use of this capability, they must specify the LAN address of the oscilloscope in order to uniquely identify the recipient device on the network. An internal program (programs running on the same machine as the oscilloscope) specifies the special LAN identifier “localhost.” This allows the application to communicate with the oscilloscope directly. This invention makes use of this latter capability because it is based on application programs running on the oscilloscope. IEEE 488 commands are a convenient mechanism for an application to control the oscilloscope, because IEEE 488 programming is well understood by many engineers who may be involved in developing oscilloscope applications. Using these commands for applications is also convenient for oscilloscope manufacturers because it lets them avoid developing a separate interface solely to support applications.

[0065]FIG. 8 shows the execution of an exemplary application pertaining to USB testing with USB Test window 196. While the USB Test window 196 appears to be a dialog box, it is actually a separate application. In many cases the application window will be maximized, appearing entirely on top of the oscilloscope window area 170.

[0066]FIG. 15 shows the architecture, functionality, and operation of an application control method 200 that may be implemented with the oscilloscope shown in FIG. 1 and/or other measurement devices. Each block in FIG. 15 represents an activity, step, module, segment, or portion of computer code that will typically comprise one or more executable instructions for implementing the specified logical function(s). However, a variety of other of computer, electrical, electronic, mechanical, and/or manual systems may also be similarly configured to operate in a similar manner. It should also be noted that, in various alternative implementations, the functions noted in the blocks will occur in an order different than noted in figures. For example, multiple functions in different blocks may be executed substantially concurrently, in a different order, incompletely, and/or over an extended period of time, depending upon the functionality involved. Various steps may also be completed manually.

[0067] The application control method 200 begins with the installation of a new application using the device's graphical user interface at step 210. At step 220, the device's menu system is extended to incorporate at least one user interface entry for the new application. After the device's menu system has been extended, the new application may be launched using the device's extended menu system in step 230. At step 240, the new application controls the device through a remote control mechanism.

[0068] As noted above the application control method 200 shown in FIG. 15 is implemented in software. The application control method 200 may be part of a source program (or “source code”), executable program (“object code”), script, or any other entity comprising a set of instructions to be performed as described in more detail below. Such software may be written using an object oriented programming language having classes of data and methods, and/or a procedure programming language, having routines, subroutines, and/or functions. For example, suitable programming languages include, but are not limited to, C, C++, Pascal, Basic, Fortran, Cobol, Perl, Java, and Ada.

[0069] Such software may be stored on any computer readable medium for use by, or in connection with, any computer-related system or method. For example, the computer readable medium may include any electronic, magnetic, optical, or other physical device or means that can contain or store a computer program for use by, or in connection with, a computer-related system or method. The computer-related system may be any instruction execution system, apparatus, or device, such as a computer-based system, processor-containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device and then execute those instructions. Computer-readable medium therefore includes any means that will store, communicate, propagate, or transport the program for use by, or in connection with, the instruction execution system, apparatus, or device.

[0070] For example, the computer readable medium may take a variety of forms including, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples of a computer-readable medium include, but are not limited to, an electrical connection (electronic) having one or more wires, a portable computer diskette (magnetic), a random access memory (“RAM”) (electronic), a read-only memory (“ROM”) (electronic), an erasable programmable read-only memory (“EPROM,” “EEPROM,” or Flash memory) (electronic), an optical fiber (optical), and a portable compact disc read-only memory (“CDROM”) (optical). The computer readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, for instance via optical sensing or scanning of the paper, and then compiled, interpreted or otherwise processed in a suitable manner before being stored in a memory.

[0071] In a typical embodiment, once the software implementation of the application control method shown in FIG. 15 is accessed, a processor will typically be configured to execute instructions corresponding to the method 200 in conjunction with an operating system stored within a memory. The processor will also receive and execute further instructions and data stored in memory or made available from various input/output devices (such as the source and/or detector assemblies discussed above) so as to generally operate the system pursuant to the instructions and data contained in the software.

[0072] The invention has several advantages over previous approaches. Unlike approaches centered around standalone applications programs that may run on a separate computer, the present invention solution is center around the oscilloscope. The user installs and invokes the application program from the oscilloscope, which is his or her natural and preferred device for interaction. The application runs on the same computer as the oscilloscope and the connectivity between the application and the oscilloscope is intrinsic, delivering a seamless control interface. Because the oscilloscope launches the application and the application then controls the oscilloscope, the two programs constitute a cooperating system that the user perceives as an integrated solution. Running all the applications from the oscilloscope is an advantage with respect to ease of use.

[0073] It is envisioned that the installation implementation described above using the GUI could be replaced with a method of installation with little or no operator interface with the GUI. For example, a bootable disk that installs the application and necessary GUI/configuration files/data could be utilized. In this case, the installation GUI may prompt the user to reboot the oscilloscope or merely inform the user that the oscilloscope will be automatically rebooted to complete the installation.

[0074] It is also envisioned that during the extension of the oscilloscope a new “.dat” file could be specified by the new application and be loaded by the oscilloscope program. This could be implemented by having the oscilloscope application boot up and search a specific directory (for example, C:\scope\app_extension data) for all “.dat” files, and then loading each one in turn. This method has the additional desirable attribute of isolating data about a specific extension application to a specific file. This method may also simplify installation of other tools/applications as the GUI extension-file (the “.dat” file) merely needs to be copied into the appropriate directory. Basically, the GUI-extension data could show up in a single “.dat” file or in multiple “.dat” files.

[0075] Unlike approaches based on incorporating the entire application functionality into the oscilloscope itself, the present invention allows applications to be developed independently of the oscilloscope software, and it allows applications flexibility in the ways they use for interacting with the user. Unlike alternatives based on the COM architecture, the present invention is simpler and more accessible to a wider range of application developers. The system overhead required by the present invention and knowledge required to make effective use of it is minimal.

[0076] It should be emphasized that the embodiments described above, and particularly any “preferred” embodiments, are merely examples of various implementations that have been set forth here to provide a clear understanding of various aspects of the invention. One of ordinary skill will be able to alter many of these embodiments without substantially departing from scope of protection defined solely by the proper construction of the following claims. 

1. A measurement device comprising: a graphical user interface adapted to install new applications and adapted to extend with an installation of one of the new applications by adding at least one user interface entry for the one of the new applications to the graphical user interface; and an operating system adapted to launch the one of the new applications using the added user interface entry.
 2. The device of claim 1, further comprising a remote control mechanism to allow the one of the new applications to control the device.
 3. The device of claim 2, wherein the remote control mechanism includes a general purpose interface bus interface.
 4. The device of claim 2, wherein the remote control mechanism includes an RS-232 interface.
 5. The device of claim 2, wherein the remote control mechanism includes a universal serial bus interface.
 6. The device of claim 1, wherein the graphical user interface includes a menu item and dialog box for the installation of the new applications.
 7. The device of claim 1, further comprising a storage unit for loading of the new applications.
 8. The device of claim 7, wherein the storage unit is a floppy disk drive.
 9. The device of claim 7, wherein the storage unit is a compact disk drive.
 10. The device of claim 1, further including a data file used to create the at least one user interface entry.
 11. The device of claim 1, wherein the measurement device is an oscilloscope.
 12. A method of application control of a measurement device comprising: invoking an installation interface for installing a new application from a graphical user interface of the device; invoking an extension interface for extending the graphical user interface; invoking a launch interface for launching the new application using the extended graphical user interface; and invoking a control interface for controlling the device using the new application.
 13. The method of claim 12, wherein the installation interface includes a menu item.
 14. The method of claim 12, wherein installation interface includes a menu item and a dialog box.
 15. The method of claim 12, wherein invoking the extension interface includes generating a data file.
 16. The method of claim 15, wherein the data file includes a data format to allow menu items to be added throughout a menu hierarchy of the device.
 17. The method of claim 12, wherein the launch interface is located in operating system of the device.
 18. The method of claim 12, wherein the launch interface includes data structures provided by the Microsoft Visual C++ software development environment.
 19. The method of claim 12, wherein invoking the launch interface includes: reserving a block of unique command identifiers; creating a message map entry; and reserving space for an array of strings.
 20. The method of claim 19, wherein each command identifier is a symbol with an associated numeric value.
 21. A method of application control of a measurement device comprising: installing a new application from a graphical user interface of the device; extending the graphical user interface; launching the new application using the extended graphical user interface; and controlling the device using the new application.
 22. The method of claim 21, wherein installing a new application includes inserting a media containing the new application into the device.
 23. The method of claim 21, wherein installing a new application includes: terminating the operation of the device; running an installation program of the new application; and rebooting the device.
 24. The method of claim 23, wherein running an installation program of the new application includes inserting textual information into a data file.
 25. The method of claim 24, wherein extending the graphical user interface includes: reading the data file by the device; and creating at least one additional user interface entry for the new application.
 26. The method of claim 25, wherein the additional user interface entry is a new menu item.
 27. The method of claim 25, wherein the additional user interface entry is a new toolbar button.
 28. The method of claim 25, wherein the additional user interface entry is a new measurement selection.
 29. The method of claim 25, wherein launching the new application includes selecting the additional user interface entry.
 30. The method of claim 21, wherein controlling the device includes sending commands using a remote control mechanism of the device.
 31. The method of claim 30, wherein the commands are IEEE 488 commands.
 32. An application control system for a measurement device comprising: an install interface to install a new application using a graphical user interface; an extension interface to extend the graphical user interface to accommodate the new application; a launch interface to launch the new application using the extended graphical user interface; a control interface to allow the new application to control the device through a remote control mechanism of the device.
 33. A method of application control of a measurement device comprising: installing a new application using a bootable disk; extending the device's user interface; launching the new application using the device's extended user interface; and controlling the device using the new application. 